import Vue from 'vue'
import Vuex from 'vuex'
import shoppingCartModule from './modules/cart'
import userModule from './modules/user'
import saveCart from './plugins/save-cart'

Vue.use(Vuex)

// 创建 Vuex.Store 对象
// 启用严格模式，任何在 mutaiton 之外的状态更新，都是抛出错误。
// 这样更方便开发工具跟踪状态的变化，调试与维护更方便。
export default new Vuex.Store({
  strict: process.env.NODE_ENV !== 'production', // 严格模式，不要在发布环境下启用严格模式，以避免性能损失。
  plugins: [saveCart],
  modules: { // 将各独立的模块合并
    shoppingCartModule,
    userModule,
  },
})
